<?xml version="1.0"?>
<jsp:root 	xmlns:jsp="http://java.sun.com/JSP/Page"
			xmlns:c="http://java.sun.com/jsp/jstl/core"
			xmlns:fn="http://java.sun.com/jsp/jstl/functions"
			version="2.1">
	<jsp:directive.page contentType="text/html; charset=UTF-8" />
	<jsp:directive.page isELIgnored="false" />
	<jsp:output omit-xml-declaration="false"
		doctype-root-element="html"
		doctype-public="-//W3C//DTD XHTML 1.1//EN"
		doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd" />
	<jsp:directive.page import="es.albarregas.pojo.Pedido" />
	<jsp:directive.page import="es.albarregas.pojo.LineaPedido" />
	<jsp:directive.page import="es.albarregas.modelo.ModelFacade"/>
	<jsp:useBean id="clienteBean" class="es.albarregas.beans.ClienteBean" scope="session" />
	<jsp:useBean id="productoBean" class="es.albarregas.beans.ProductoBean" scope="session" />
	<jsp:useBean id="pedidoBean" class="es.albarregas.beans.PedidoBean" scope="session" />
	<jsp:useBean id="listaPedidos" class="es.albarregas.beans.ListaPedidosBean" scope="session" />
	<jsp:useBean id="lineaPedido"  class="es.albarregas.beans.LineaPedidoBean" scope="session" />
	<jsp:useBean id="listaLineasPedido" class="es.albarregas.beans.ListaLineasPedidoBean" scope="session" />
	<!-- Cargar el bean de producto con los datos de detallaProducto.jsp -->
	<jsp:setProperty property="*" name="productoBean" />
	<!-- Construir la cadena de búsqueda para leer pedidos -->
	<c:set var="clausula" value="where CodigoCliente=${clienteBean.codigo} 
		and Estado='N'" />
	<jsp:setProperty property="clausulaWhere" name="listaPedidos" value="${clausula}" />
	<!-- Comprobamos que el pedido existe y está en estado carrito -->
	<c:set var="existe" value="0" />
	<c:forEach var="registros" items="${listaPedidos.pedido}">
		<c:set var="existe" value="${registros.numeroPedido}" />
	</c:forEach>
	<c:if test="${existe==0}">
		<!-- No existe el pedido y pasamos a crearlo -->
		<jsp:setProperty property="codigoCliente" name="pedidoBean" value="${clienteBean.codigo}" />
		<jsp:scriptlet>
			Pedido pedido = ModelFacade.crearPedido(pedidoBean);
		</jsp:scriptlet>
		<c:forEach var="registros" items="${listaPedidos.pedido}">
		<c:set var="existe" value="${registros.numeroPedido}" />
	</c:forEach>
	</c:if>
	<!-- Comprobamos que la línea de pedido exista -->
	<c:set var="clausula2" 	value=" where NumeroPedido=${existe} and CodigoProducto='${param.codigo}'" />
	<jsp:setProperty property="clausulaWhere" 
		name="listaLineasPedido" value="${clausula2}" />
	<c:set var="existeLinea" value="0" />
	<c:forEach var="regLineas" items="${listaLineasPedido.lineaPedido}">
		<c:set var="existeLinea" value="${regLineas.numeroLinea}" />
	</c:forEach>
	<!-- Cargamos el bean lineaPedido con los datos que conocemos -->
	<jsp:setProperty property="numeroPedido" name="lineaPedido"
			value="${existe}" />	
	<jsp:setProperty property="codigoProducto" name="lineaPedido"
			value="${param.codigo}" />
	<jsp:setProperty property="nombreProducto" name="lineaPedido"
			value="${param.nombreProducto}" />
	<jsp:setProperty property="precioUnitario" name="lineaPedido" 
			value="${param.precio}" />
	<c:choose>	
		<!-- ExisteLinea contiene el numero de linea -->
		<c:when test="${existeLinea!=0}">
			<!-- Actualizar línea de pedido agregandole una unidad más -->
			<jsp:setProperty property="numeroLinea" name="lineaPedido" 
				value="${existeLinea}" />
			<jsp:scriptlet>
				int codigoError = ModelFacade.updateLineaPedido(lineaPedido, false);
				request.setAttribute("error", String.valueOf(codigoError));
			</jsp:scriptlet>
		</c:when>
		<c:otherwise>
			<!-- Agregar una nueva línea de pedido vinculada al pedido -->
			<jsp:scriptlet>
				int codigoError = ModelFacade.updateLineaPedido(lineaPedido, true);
				request.setAttribute("error", String.valueOf(codigoError));
			</jsp:scriptlet>
		</c:otherwise>		
	</c:choose>
	<c:choose>
		<c:when test="${error==0}">
			<jsp:forward page="VisListarProductos.jsp">
				<jsp:param name="lugar" value="2" />
				<jsp:param name="ultimoProductoAgregado" value="${param.codigo}" />
			</jsp:forward>
		</c:when>
		<c:otherwise>
			<jsp:forward page="ErrOperacion.jsp">
				<jsp:param name="error" value="${error}" />
				<jsp:param name="lugar" value="2" />
			</jsp:forward>
		</c:otherwise>
	</c:choose>
</jsp:root>